5. 装饰器 Decorator

装饰器是 Python 的一个高级特性,其基于高阶函数,形式如下所示:

@<装饰器函数名>
def func(args,...):
	...

其等同于如下的写法:

def func(args,...):
	...
func = <装饰器函数>(func)

装饰器可以用于跟踪运行时函数的调用情况,例如我们可以使用如下的跟踪函数用作装饰器:

def tracer_1args(fn):
	def tracer(x):
		print("Calling function", fn, "on argument", x)
		return fn(x)
	return tracer